const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({

    /**
   * 页面的初始数据
   */
  data: {
    show: false,
    avatarUrl: defaultAvatarUrl,
    nickname: '',
    message: '',
    identity:'',
    show: false,
  },

  showPopup() {
    this.setData({ show: true });
  },
  onClose() {
    this.setData({ show: false });
  },

  // 登录
  login() {

  },
  // 获取code,注册登录
  getCode() {
    // 判断头像和昵称否已经输入
    if (this.data.avatarUrl != defaultAvatarUrl && this.data.nickname != '') {
      // 处理编码问题
      const {
        avatarUrl,
        nickname
      } = this.data;
      // 对avatarUrl,nickname进行url编码
      const encodeAvatarUrl = encodeURIComponent(avatarUrl);
      const encodeNickname = encodeURIComponent(nickname);
      // 获取code
      wx.login({
        success: (res) => {
          console.log(res.code);
          if (res.code) {
            // 将头像，昵称，code传去后端，然后后端写入数据库
            wx.request({
              url: 'http://localhost:8080/users/register',
              method: 'POST',
              data: {
                code: res.code,
                avatarUrl: encodeAvatarUrl,
                nickName: encodeNickname
              },
              header: {
                'Content-Type': 'application/json'
              },
              // 注册成功则：
              success: (res) => {
                console.log(res.data);
                //解码
                const url = decodeURIComponent(res.data.url);
                const name = decodeURIComponent(res.data.name);
                const openid = res.data.openid;
                const identity = res.data.identity;
                //数据存储
                wx.setStorageSync('url', url)
                wx.setStorageSync('name', name)
                wx.setStorageSync('openid', openid)
                wx.setStorageSync('identity', identity)
                this.setData({
                  avatarUrl: url,
                  nickname: name,
                  message: res.data.message,
                  identity:identity
                });
                const msg = this.data.message;
                wx.showModal({
                  content: msg,
                })
              }
            })
          } else {
            console.log('获取code失败')
          }
        },
      })
    } else {
      wx.showModal({
        title: '注册提示',
        content: '请输入头像及昵称！'
      })
    }
  },

  // 头像
  onChooseAvatar(e) {
    const {
      avatarUrl
    } = e.detail
    this.setData({
      avatarUrl,
    })
  },
  // 昵称
  // 处理昵称输入变化
  handleNicknameChange: function (e) {
    // 从事件对象中获取输入的值
    console.log(e.detail.value)
    const value = e.detail.value;
    // 更新页面数据中的 nickname 值
    this.setData({
      nickname: value
    });
  },

  // 修改身份
  changeIdentity(){
    const _this=this;
    const openId=wx.getStorageSync('openid')
    wx.request({
      url: 'http://localhost:8080/users/changeIdentity',
      method:'POST',
      data:{
        openId:openId
      },
      success(){
        _this.onClose();

        // 修改成功，请求一次数据
        _this.getCode();
      },
      fail(){
        _this.onClose();
        wx.showToast({
          title: '更改失败',
          icon:'error',
          duration:2000
        })       
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    try{
      const url=wx.getStorageSync('url');
      const name=wx.getStorageSync('name');
      this.setData({
        avatarUrl:url,
        nickname:name
      })
    }catch(e){
      console.error('获取 storage 失败:', e);
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})